An “embedded system” is a computer with a dedicated function that operates within a more complex system, which can be mechanical or electrical in nature (including a larger computer system), with the embedded system “embedded” as part the more complex system that also includes other hardware and/or mechanical components. Examples of embedded systems include vehicle control systems and instrument clusters are discussed in further detail in this document and in the '651 and '158 applications (which have already been incorporated herein by reference in their entirety). Many other examples exist as well, including, without limitation, systems embedded in household appliances, medical instruments, industrial equipment, and the like.
Relative to general purpose computers, embedded systems typically are characterized by low power consumption, small size, and/or low cost. These advantages, however, are balanced by the limited processing resources available to such systems, with the result that embedded systems often are significantly more difficult to program and to interface with than general purpose computers. Consequently, many embedded systems did not provide user interfaces. If such interfaces were required, they often were quite simple in nature, such as physical switches, analog displays, and/or the like.
More recently, however, embedded systems have become increasingly complex and many offer a far higher degree of user interaction. One example is an instrument gauge cluster for an automobile. In the past, such clusters generally have been groups of analog gauges with direct input from analog sensors in the vehicle. Now, however, many instrument clusters are computing devices with digital screens (which often emulate analog gauges) and a variety of different user input mechanisms. Automotive manufacturers seek to provide as many features in such devices as possible, subject to a number of restraints, such as the need for real-time output, limited computing resources, and differences between models and platforms.
As these embedded systems become more and more complex, however, testing of these systems becomes more difficult, particularly if they must be tested manually by a technician or the like. In particularly, testing of embedded human-machine interfaces (“HMIs”; also referred to as graphical user interfaces (“GUIs”) and/or the like) prior to their release into the manufacturing stream in the automotive, medical, industrial, and/or other markets is currently not automated. These HMIs are most often very complex, consisting of many different screens and sub-screens with complex animated graphics being displayed on each screen. Tremendous costs are incurred in terms of time, effort, and money in manually testing such HMIs to verify compliance with requirements before these HMI systems enter the marketplace
Hence, there is a need for more robust and scalable solutions for implementing user interface validation or diagnostics, and, in particular embodiments, to methods, systems, and computer software for implementing automated forensic artifact reconstruction and replay (“FARR”) of captured and recorded display interface streams (“CARDIS”).